class Disintegrate2Proj extends ROBallisticProjectile;

simulated function PostBeginPlay()
{
	if(Instigator==None) return;
	Super.PostBeginPlay();
}

simulated function ProcessTouch(Actor Other, Vector HitLocation)
{
	if(!Other.bStatic)	Log("ProcessTouch2"@Other);
	if(!Other.bStatic)
	{
		if( (Pawn(Other)!=None && PlayerController(Pawn(Other).Controller)!=None) ||
			UseTrigger(Other)!=None ||
			Mover(Other)!=None
		)
			return;
		if(Disintegrate2Proj(Other)!=None)
			return;
		Other.Destroy();
	}
}

simulated function Explode(vector HitLocation, vector HitNormal)
{
	Local Actor A;
//	Local KFMonster K;
//	local AcidGunWProj p;
//	local KFPlayerReplicationInfo KFPRI;
//	local int i;

	//bHasExploded = True;

	if (ROLE == ROLE_Authority)
	{
		Log("_____Start2_____");
		foreach CollidingActors (class 'Actor', A, DamageRadius, HitLocation)
		{
			if(!A.bStatic)
			{
				if( (Pawn(A)!=None && PlayerController(Pawn(A).Controller)!=None) ||
					UseTrigger(A)!=None ||
					Mover(A)!=None
				)
					continue;
				if(Disintegrate2Proj(A)!=None)
					continue;
				Log("Explode2"@A);
				A.Destroy();
			}
		}
		Log("____End2____");
	}
	SetPhysics(PHYS_None);
	BlowUp(HitLocation);
	Destroy();
}

simulated function HitWall(vector HitNormal, actor Wall)
{
	if(!Wall.bStatic) Log("HitWall2"@Wall);
	if(!Wall.bStatic)
	{
		if( (Pawn(Wall)!=None && PlayerController(Pawn(Wall).Controller)!=None) ||
			UseTrigger(Wall)!=None ||
			Mover(Wall)!=None
		)
			return;
		if(Disintegrate2Proj(Wall)!=None)
			return;
		Wall.Destroy();
	}
}

defaultproperties
{
     Speed=100000.000000
     DamageRadius=200.000000
     LifeSpan=3.000000
}
